home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-11-27 | 2.1 KB | 57 lines | [TEXT/MPS ] |
- KNOWN BUGS AND OTHER PROBLEMS WITH MPW GCC
-
- Some sorts of conversions (such as double <-> extended) cause a crash in
- the reload phase. Seems to be more common with optimization+SANE+extended
- floats, but has been observed in other situations also.
- Example (OK with -mc68881, fails without):
- int n, i, arr[10];
- float c, theta, tang;
- test() {
- for (i = 0; i < n; i++) {
- tang = atan2 (cos (i * 2.0), sin (i * 2.0));
- arr[i] = 50 * c * sin (tang); }}
- Workaround: temp variables and multiple assignment statements seem to help.
-
- #<symbol> sometimes appears as an operand (as when pointer arithmetic is being
- done on the address of an array), causing MPW Asm to report an error.
- Example:
- extern char gline[100], *fooline;
- short foo() { return fooline - gline; }
- Workaround: assign address to a temp pointer, then do operations on value of ptr.
-
- -b option causes a failure when initializing some arrays of strings.
- Example: GCC compiling wordlist in c-parse.tab.c.
- Workaround: don't use -b when self-compiling.
-
- Casted objects passed by address to pascal functions don't get converted.
-
- Pointer to a function does not have the right sort of value
- Example:
- void f();
- void (*fp)() = f;
- foo() { return *fp == f; } /* returns 0, but should return 1 */
-
- (Incorrect code gen for C code defined as pascal fn returning structs?)
-
- -mbg ch8 and -mbg <number> are not implemented.
-
- Result from pascal fns goes to d0 then to final place, instead of being returned
- there directly.
-
- Enum values >= 2^31 cause out-of-range errors.
-
- Complains about mismatches between ptrs to chars and unsigned chars
- (Mac read() proto vs cccp.c, for instance).
-
- -bigseg is not implemented. (use -model in asm?)
-
- #pragma parameter is not implemented. (would be easier and still useful to
- remember pragma info and warn if attempting to call a fn for which pragma was
- supplied.)
-
- -notonce is not implemented in cpp.
-
- gC and gCPlus scripts are slow, should use LSR's driver program, but still need to
- make -tools option control where to find the driver. (Current version of code is
- "gctool.c" and "new gC" in the Miscellaneous folder.)
-